package simonxianyu.boot.mybatis.base;

import org.apache.ibatis.annotations.Mapper;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
@Mapper
public @interface BatisMapper {
  /**
   * 申明是否使用数据库自动生成的 id
   */
  boolean useGeneratedKey() default false;
  /** 指定 entity的主键属性名 默认为 id */
  String idName() default "id";
  /** 指定 数据表中主键 字段名 默认为 id */
  String idColumn() default "id";

  /** 是否使用 DbColumn 注解 */
  boolean useColumnAnnotation() default true;

  /** 是否复合主键 */
  boolean compoundKey() default false;

  /** 是否使用乐观锁 */
  boolean useVersion() default false;
  /** 乐观锁字段名 */
  String versionColumn() default "version";
  String versionName() default "version";
}
